#ifndef _WIFI_H_
#define _WIFI_H_



void Handle_check(){
  esp8266_server.send(200, "text/plain",(String)wifi_check);

}

void Handle_ssid(){
  String ss=esp8266_server.arg("ssid");

  ssid=ss;

  Serial.print("ssid ： ");
  Serial.println(ssid);
}
void Handle_passward(){
  String ps=esp8266_server.arg("passward");

  password=ps;

  Serial.print("passward ： ");
  Serial.println(password);
  count=0;
    WiFi.begin(ssid,password);
    while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
    count++;
    if(count==10)
    {
      count=0;
      wifi_check=0;
      WiFi.disconnect(true);
      break;
    }
    Serial.print ( "." );
  }
if(wifi_check)
{   // WiFi连接成功后将通过串口监视器输出连接成功信息
    Serial.println('\n');
    Serial.print("Connected to ");
    Serial.println(WiFi.SSID()); // 通过串口监视器输出连接的WiFi名称
    Serial.print("IP address:\t");
    Serial.println(WiFi.localIP()); // 通过串口监视器输出ESP8266-NodeMCU的IP
    }
}



void Handle_pattern(){
   String pa = esp8266_server.arg("pattern");
  // 将接受到的String类型数据转为uint8_t类型
  co_pat = pa.toInt();
  esp8266_server.send(200, "text/plain");

  Serial.print("co_pat :");
  Serial.println(co_pat);
}

void Handle_pace(){
  String pac = esp8266_server.arg("pace");
  // 将接受到的String类型数据转为uint8_t类型
  pace = pac.toInt();
  esp8266_server.send(200, "text/plain");

  Serial.print("Pace :");
  Serial.println(pace);
}


void Handle_brightness(){
    String bri = esp8266_server.arg("brightness");
  // 将接受到的String类型数据转为uint8_t类型
  Brightness = bri.toInt();
  esp8266_server.send(200, "text/plain");

  Serial.print("Brightness ：");
  Serial.println(Brightness);
}

void handleDNS()
{
   File file = SPIFFS.open("wifi.html", "r");       // 则尝试打开该文件
    esp8266_server.streamFile(file, "text/html"); // 并且将该文件返回给浏览器
    file.close();                                 // 并且关闭文件

}


// 获取文件类型
String getContentType(String filename)
{
  if (filename.endsWith(".htm"))
    return "text/html";
  else if (filename.endsWith(".html"))
    return "text/html";
  else if (filename.endsWith(".css"))
    return "text/css";
  else if (filename.endsWith(".js"))
    return "application/javascript";
  else if (filename.endsWith(".png"))
    return "image/png";
  else if (filename.endsWith(".gif"))
    return "image/gif";
  else if (filename.endsWith(".jpg"))
    return "image/jpeg";
  else if (filename.endsWith(".ico"))
    return "image/x-icon";
  else if (filename.endsWith(".xml"))
    return "text/xml";
  else if (filename.endsWith(".pdf"))
    return "application/x-pdf";
  else if (filename.endsWith(".zip"))
    return "application/x-zip";
  else if (filename.endsWith(".gz"))
    return "application/x-gzip";
  return "text/plain";
}


bool handleFileRead(String resource)
{ // 处理浏览器HTTP访问

  if (resource.endsWith("/"))
  {                           // 如果访问地址以"/"为结尾
    resource = "/index.html"; // 则将访问地址修改为/index.html便于SPIFFS访问
  }

  String contentType = getContentType(resource); // 获取文件类型

  if (SPIFFS.exists(resource))
  {                                               // 如果访问的文件可以在SPIFFS中找到
    File file = SPIFFS.open(resource, "r");       // 则尝试打开该文件
    esp8266_server.streamFile(file, contentType); // 并且将该文件返回给浏览器
    file.close();                                 // 并且关闭文件
    return true;                                  // 返回true
  }
  return false; // 如果文件未找到，则返回false
}


void handleUserRequest()
{

  // 获取用户请求资源(Request Resource）
  String reqResource = esp8266_server.uri();
  Serial.print("reqResource: ");
  Serial.println(reqResource);

  // 通过handleFileRead函数处处理用户请求资源
  bool fileReadOK = handleFileRead(reqResource);

  // 如果在SPIFFS无法找到用户访问的资源，则打开index
  if (!fileReadOK)
  {
    //esp8266_server.send(404, "text/plain", "404 Not Found");//回复404 (Not Found)
    reqResource  = "/index.html";
    handleFileRead(reqResource);
  }
}

#endif